﻿CREATE PROCEDURE [dbo].[Hogar_ParteDiarioComedor_Actualizar]   
	@ParteDiarioComedorAsXml Xml
AS 
BEGIN

/*****************************************************************************************************************************************/
-- Author: Carlos Mendoza
-- Purpose:   actualiza un parte diario de comedor
/*****************************************************************************************************************************************/ 

DECLARE @ParteDiarioComedorId INT

BEGIN TRY
    BEGIN TRAN 
    
		SELECT @ParteDiarioComedorId = DatosParteMensualComedor.ParteDiarioComedor.query('./ParteDiarioComedorId').value('.','INT')
		FROM @ParteDiarioComedorAsXml.nodes('/DatosParteMensualComedor/ParteDiarioComedor') AS DatosParteMensualComedor(ParteDiarioComedor)
		
		UPDATE [dbo].[ParteDiarioComedor]
		SET [Fecha] = DatosParteMensualComedor.ParteDiarioComedor.query('./Fecha').value('.','DATE')
		,[CantidadRealizada] = CAST(NULLIF(DatosParteMensualComedor.ParteDiarioComedor.query('./CantidadRealizada').value('.','INT'),'') as INT)
		,[CantidadEntregadaComedor] = CAST(NULLIF(DatosParteMensualComedor.ParteDiarioComedor.query('./CantidadEntregadaComedor').value('.','INT'),'') as INT)
		,[CantidadEntregadaVianda] =  CAST(NULLIF(DatosParteMensualComedor.ParteDiarioComedor.query('./CantidadEntregadaVianda').value('.','INT'),'') as INT)
		,[Menu] = DatosParteMensualComedor.ParteDiarioComedor.query('./Menu').value('.','VARCHAR(250)')
		,[Observacion] = DatosParteMensualComedor.ParteDiarioComedor.query('./Observacion').value('.','VARCHAR(250)')
		FROM @ParteDiarioComedorAsXml.nodes('/DatosParteMensualComedor/ParteDiarioComedor') AS DatosParteMensualComedor(ParteDiarioComedor)
		WHERE [ParteDiarioComedorId] = @ParteDiarioComedorId
		
		DELETE FROM [dbo].[ResponsableParteDiarioComedor]
		WHERE [ParteDiarioComedorId] = @ParteDiarioComedorId
		
		INSERT INTO [dbo].[ResponsableParteDiarioComedor]
           ([ParteDiarioComedorId]
           ,[PersonalCocinaId])
        SELECT
			@ParteDiarioComedorId,
			PersonalCocina.PersonalCocina.query('./PersonalCocinaId').value('.','INT')
		FROM @ParteDiarioComedorAsXml.nodes('/DatosParteMensualComedor/PersonalCocina/PersonalCocina') AS PersonalCocina(PersonalCocina)
		
		
    COMMIT TRAN
END TRY
BEGIN CATCH
	SELECT ERROR_NUMBER() AS Number,
		ERROR_MESSAGE() AS Message
	ROLLBACK TRAN
	
END CATCH

END